package com.ruoyi.pingjiao.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.pingjiao.domain.Teacher;

/**
 * 教师管理Mapper接口
 *
 * @author 胡浩鹏
 * @date 2022-10-15
 */
public interface TeacherMapper
{
    /**
     * 查询教师管理
     *
     * @param teacherId 教师管理主键
     * @return 教师管理
     */
    public Teacher selectTeacherByTeacherId(Long teacherId);

    public Teacher selectTeacherByUserId(Long teacherId);


    /**
     * 查询教师管理列表
     *
     * @param teacher 教师管理
     * @return 教师管理集合
     */
    public List<Teacher> selectTeacherList(Teacher teacher);

    /**
     * 查询教师管理列表
     *
     * @param courseclassId 教师管理
     * @return 教师管理集合
     */
    public List<Teacher> selectTeacherListByCourseclassId(long courseclassId);

    /**
     * 新增教师管理
     *
     * @param teacher 教师管理
     * @return 结果
     */
    public int insertTeacher(Teacher teacher);

    /**
     * 修改教师管理
     *
     * @param teacher 教师管理
     * @return 结果
     */
    public int updateTeacher(Teacher teacher);

    /**
     * 删除教师管理
     *
     * @param teacherId 教师管理主键
     * @return 结果
     */
    public int deleteTeacherByTeacherId(Long teacherId);

    /**
     * 批量删除教师管理
     *
     * @param teacherIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTeacherByTeacherIds(Long[] teacherIds);

    /**
     * 根据教师工号获取教师信息
     * @author  hpf
     * @param  teacherNo 教工号
     * @return 教师
     */
    public Teacher selectTeacherByNo(String  teacherNo);

    public Teacher selectTeacherWithCourseByTeacherId(Long teacherId);

    /**
     * 根据教师id获取本学期评教成绩
     * @author  hpf
     * @param  map  （teacherId 教工id，学期）
     * @return 教师
     */
    public List<Map<String, Object>> selectEvaluationScoreByTeacherId(Map map);
    /**
     * 根据教师id获取本学期评教活动
     * @author  hpf
     * @param  map  （teacherId 教工id，学期）
     * @return 教师
     */
    List<Map<String, Object>> selectActivityByTeacherId(Map<String, Object> map);

    Object getInfoByUserId(Long userId);

    List<Map<String,Object>> getRank(Long teacherId);

    List<Integer> selectCourseIdByTeacherId(Integer teacherId);

    Teacher selectTeacherByTeacherNo(String teacherNo);
}
